package com.zcy.util;

import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

public class ConnectionUtil {
    private ConnectionFactory factory = null;

    //单例模式创建（懒加载）
    //1.私有化构造方法 ； 2.创建一个静态的当前类对象 ； 3.提供一个静态的公共的方法，创建当前对象
    private ConnectionUtil() {
        //定义连接工厂
        factory = new ConnectionFactory();
        //设置服务地址
        factory.setHost("127.0.0.1");
        //端口(程序访问mq的默认端口)
        factory.setPort(5672);
        //设置账号信息，用户名、密码、vhost
        factory.setVirtualHost("/");
        factory.setUsername("guest");
        factory.setPassword("guest");
    }

    private static ConnectionUtil instance = null;

    public static ConnectionUtil getInstance() {
        if (instance == null) {
            instance = new ConnectionUtil();
        }
        return instance;
    }

    /**
     * 建立与RabbitMQ的连接
     *
     * @return
     * @throws Exception
     */
    public Connection getConnection() throws Exception {
        return factory.newConnection();
    }


//    public static Connection getConnection() throws Exception {
//        //定义连接工厂
//        ConnectionFactory factory = new ConnectionFactory();
//        //设置服务地址
//        factory.setHost("127.0.0.1");
//        //端口(程序访问mq的默认端口)
//        factory.setPort(5672);
//        //设置账号信息，用户名、密码、vhost
//        factory.setVirtualHost("/");
//        factory.setUsername("guest");
//        factory.setPassword("guest");
//        // 通过工程获取连接
//        Connection connection = factory.newConnection();
//        return connection;
//    }
}